package com.fy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fy.pojo.dto.activity.ActiveListQueryDTO;
import com.fy.pojo.dto.activity.ActivityDTO;
import com.fy.pojo.dto.activity.ActivityListDTO;
import com.fy.pojo.entity.Activity;
import com.fy.pojo.vo.activity.ActivityStatisticsVO;
import com.fy.utils.result.PageResult;
import com.fy.utils.result.Result;
import com.fy.pojo.dto.activity.UpdateActivityDTO;
import com.fy.pojo.dto.activity.AddActivityDTO;
import org.springframework.web.multipart.MultipartFile;

public interface ActivityService extends IService<Activity> {
  /**
   * 发布活动
   * 
   * @param activityDTO 活动信息
   * @return 发布结果
   */
  Result publishActivity(ActivityDTO activityDTO);

  /**
   * 获取活动列表
   * 
   * @param queryDTO 查询条件
   * @return 分页结果
   */
  Result<PageResult> getActivityList(ActiveListQueryDTO queryDTO);

  /**
   * 获取活动列表(用户端)
   */
  Result<PageResult> getActivityListForUser(ActivityListDTO queryDTO);

  /**
   * 获取全部活动
   *
   * @return
   */
  Result<PageResult> getActivityListAll(ActivityListDTO activityListDTO);

  /**
   * 获取活动统计信息
   * @return
   */
  ActivityStatisticsVO getStatistics();

  /**
   * 更新活动
   * 
   * @param updateActivityDTO 更新活动信息
   * @return 更新结果
   */
  Result updateActivity(UpdateActivityDTO updateActivityDTO);

  /**
   * 添加活动
   * 
   * @param addActivityDTO 活动信息
   * @return 添加结果
   */
  Result addActivity(AddActivityDTO addActivityDTO);

  /**
   * 上传活动封面
   * @param file
   * @return
   */
  String uploadCoverFile(int id,MultipartFile file);
}